// EasySYS.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "EasySYS.h"
#include "EasySYSDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define STR_BLOGURL "http://hi.baidu.com/517826104"

/////////////////////////////////////////////////////////////////////////////
// CEasySYSApp
AppOption g_options[OPTION_NUM] =
{
	//target os
	{TARGET_OS, TOS_W2K, _T("W2K"), _T("Window 2000"), FALSE},
	{TARGET_OS, TOS_WXP, _T("WXP"), _T("Window XP"), FALSE},
	{TARGET_OS, TOS_W2K3, _T("WNET"), _T("Window 2003"), FALSE},
	{TARGET_OS, TOS_W2K8, _T("WLH"), _T("Window Vista/2008"), FALSE},

	//ddk
	{DDK_VERSION, DDK_W2K, _T("W2K"), _T("DDK 2000"), FALSE},
	{DDK_VERSION, DDK_WXP, _T("WXP"), _T("DDK XP"), FALSE},
	{DDK_VERSION, DDK_W2K3, _T("WNET"), _T("DDK 2003"), TRUE},
	{DDK_VERSION, DDK_WDK, _T("WLH"), _T("WDK 6001.18002"), FALSE},

};

BOOL GetCurOption(int nClass, int *nID)
{
	for (int i=0; i<OPTION_NUM; i++)
	{
		if (g_options[i].nClass == nClass 
			&& g_options[i].bChecked == TRUE)
		{
			*nID = g_options[i].nID;
			return TRUE;
		}
	}
	return FALSE;
}

int SetCurOption(int nClass, int nID)
{
	int nRet = FALSE;

	for (int i=0; i<OPTION_NUM; i++)
	{
		if (g_options[i].nClass == nClass)
		{
			if (g_options[i].nID == nID)
			{
				g_options[i].bChecked = TRUE;
				nRet = i;
			}
			else
			{
				g_options[i].bChecked = FALSE;
			}
		}
	}

	return nRet;
}

int GetCheckItem(int nClass, int nIndex)
{
	for (int i=0; i<OPTION_NUM; i++)
	{
		if (g_options[i].nClass == nClass
			&& g_options[i].bChecked == TRUE)
		{
			if (--nIndex >= 0)
			{
				continue;
			}
			return i;
		}
	}
	return -1;
}

int SetCheckItem(int nClass, int nID)
{
	int nRet = FALSE;
	for (int i=0; i<OPTION_NUM; i++)
	{
		if (g_options[i].nClass == nClass)
		{
			if (g_options[i].nID == nID)
			{
				g_options[i].bChecked = TRUE;
				nRet = i;
			}
		}
	}
	return nRet;
}

BEGIN_MESSAGE_MAP(CEasySYSApp, CWinApp)
	//{{AFX_MSG_MAP(CEasySYSApp)
	ON_COMMAND(ID_APP_LINK, OnAppLink)
	//}}AFX_MSG_MAP
	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEasySYSApp construction

CEasySYSApp::CEasySYSApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CEasySYSApp object

CEasySYSApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CEasySYSApp initialization

BOOL CEasySYSApp::InitInstance()
{
	// Standard initialization
	// If you are not using these features and wish to reduce the size
	//  of your final executable, you should remove from the following
	//  the specific initialization routines you do not need.

	CEasySYSDlg dlg;
	m_pMainWnd = &dlg;
	int nResponse = dlg.DoModal();
	if (nResponse == IDOK)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with OK
	}
	else if (nResponse == IDCANCEL)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with Cancel
	}

	// Since the dialog has been closed, return FALSE so that we exit the
	//  application, rather than start the application's message pump.
	return FALSE;
}

BOOL CEasySYSApp::InitApplication() 
{
	// TODO: Add your specialized code here and/or call the base class	
	return CWinApp::InitApplication();
}

void CEasySYSApp::OnAppLink() 
{
	::ShellExecute(::GetDesktopWindow(), "open", STR_BLOGURL,NULL,NULL,SW_SHOWNORMAL);	
}
